home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume7 / 2.11news / part03 < prev    next >
Encoding:
Internet Message Format  |  1986-11-30  |  55.8 KB

  1. Subject:  v07i043:  2.11 News Documentation and Conversion, Part03/08
  2. Newsgroups: mod.sources
  3. Approved: mirror!rs
  4.  
  5. Submitted by: seismo!rick (Rick Adams)
  6. Mod.sources: Volume 7, Issue 43
  7. Archive-name: 2.11news/Part03
  8.  
  9. # To extract, sh this file
  10. #
  11. #    news 2.11 documentation File 1 of 6
  12. #
  13. if test ! -d doc
  14. then
  15.     mkdir doc
  16. fi
  17. echo x - doc/Makefile 1>&2
  18. sed 's/.//' >doc/Makefile <<'*-*-END-of-doc/Makefile-*-*'
  19. -# make the various documents
  20. -
  21. -ROFF=nroff
  22. -
  23. -all: howto manner standard copyright install
  24. -
  25. -install: install.mn tmac.n
  26. -    $(ROFF) tmac.n install.mn
  27. -
  28. -howto: howto.mn tmac.n
  29. -    $(ROFF) tmac.n howto.mn
  30. -
  31. -manner: manner.mn tmac.n
  32. -    $(ROFF) tmac.n manner.mn
  33. -
  34. -standard: standard.mn tmac.n
  35. -    $(ROFF) tmac.n standard.mn
  36. -
  37. -copyright: copyright.mn tmac.n
  38. -    $(ROFF) tmac.n copyright.mn
  39. *-*-END-of-doc/Makefile-*-*
  40. echo x - doc/mn.7 1>&2
  41. sed 's/.//' >doc/mn.7 <<'*-*-END-of-doc/mn.7-*-*'
  42. -.TH MN 7 "News Version B2.11"
  43. -.SH NAME
  44. -mn \- text formatting macros for the news documentation
  45. -.SH SYNOPSIS
  46. -.B "nroff  \-mn"
  47. -[ options ]  file  ...
  48. -.br
  49. -.B "troff  \-mn"
  50. -[ options ]  file  ...
  51. -.SH DESCRIPTION
  52. -.PP
  53. -This package of
  54. -.IR nroff (1)
  55. -and
  56. -.IR troff (1)
  57. -macro definitions provides a formatting facility
  58. -which may be used to run off the formatted news documents.
  59. -When reverse line motions are needed,
  60. -filter the output through
  61. -.IR col (1).
  62. -.PP
  63. -All \-mn macros,
  64. -diversions,
  65. -string registers,
  66. -and number registers are defined below.
  67. -Many
  68. -.I nroff
  69. -and
  70. -.I troff
  71. -requests are unsafe in conjunction with this package.
  72. -However,
  73. -the requests below may be used with impunity:
  74. -.LP
  75. -.ta 5n 12n
  76. -.nf
  77. -    .bp    begin new page
  78. -    .br    break output line
  79. -    .sp \f2n\fP    insert \f2n\fP spacing lines
  80. -    .ce \f2n\fP    center next \f2n\fP lines
  81. -    .ls \f2n\fP    line spacing: \f2n\fP=1 single, \f2n\fP=2 double space
  82. -    .na    no alignment of right margin
  83. -.fi
  84. -.PP
  85. -Font and point size changes with \ef and \es are also allowed;
  86. -for example,
  87. -\&``\ef2word\efR'' will italicize \f2word.\fP
  88. -Output of the
  89. -.IR tbl (1),
  90. -.IR eqn (1),
  91. -and
  92. -.IR refer (1)
  93. -preprocessors for equations,
  94. -tables,
  95. -and references is acceptable as input.
  96. -.SH FILES
  97. -/usr/lib/tmac/tmac.n
  98. -.SH "SEE ALSO"
  99. -eqn(1), refer(1), tbl(1), troff(1)
  100. -.SH WARNINGS
  101. -.PP
  102. -If you do not set the string register ``.f'' to the file name,
  103. -you will only be told the line number on which any errors occur.
  104. -If you define this string to be the file name,
  105. -you will get the file name,
  106. -too.
  107. -This is useful when dealing with a document
  108. -split up into many files.
  109. -.PP
  110. -This package is not now intended for uses
  111. -other than with the news documentation.
  112. -.PP
  113. -Bug reports are always welcome;
  114. -please send them to the author.
  115. -(Include a sample of the input;
  116. -this helps track down the bug.)
  117. -.SH AUTHOR
  118. -Matt Bishop
  119. -.RI ( mab@riacs.arpa ,
  120. -.IR ihnp4!ames!riacs!mab ,
  121. -.IR decvax!decwrl!riacs!mab )
  122. -.SH REQUESTS
  123. -.PP
  124. -In the
  125. -.I Note
  126. -column,
  127. -.I b
  128. -means the request causes a break,
  129. -and
  130. -.I i
  131. -means the macro,
  132. -number register,
  133. -string register,
  134. -or diversion is internal and should not be used for anything.
  135. -In the
  136. -.I "What It Is"
  137. -column,
  138. -.IR div " means " diversion ,
  139. -.IR mac " means " macro ,
  140. -.IR num " means " "number register" ,
  141. -and
  142. -.IR str " means " "string register" .
  143. -In the
  144. -.I "Initial Value"
  145. -column,
  146. -a hyphen means no initial value is used,
  147. -anything else is the initial value,
  148. -and if two values are given,
  149. -the first is for
  150. -.I nroff
  151. -and the second for
  152. -.IR troff .
  153. -.PP
  154. -.if n .in 0
  155. -.ds x \f2x\fP\|
  156. -.ds y \f2y\fP\|
  157. -.ds z \f2z\fP\|
  158. -.ds X "\*x
  159. -.ds Y "\*x \*y
  160. -.ds Z "\*x \*y \*z
  161. -.tr _.
  162. -.ta \w'MacroNames'u +\w'WhatItIs'u +\w'InitialVal'u +\w'Note 'u
  163. -.sp .3
  164. -.nf
  165. -Macro    What    Initial    Note    \0 Explanation
  166. -Name    It Is    Value
  167. -.sp .3
  168. -_f    num    \-    \-    file name, used in error messages if set
  169. -_ai    mac    \-    \-    author's institution
  170. -_au    mac    \-    b    author's name
  171. -_b \*Z    mac    \-    \-    print \*x in font 3, \*y after, \*z before;
  172. -                if no arguments, switch to font 3
  173. -b    num    \-    i    used to embolden italics
  174. -_bi \*Z    mac    \-    \-    print \*x in emboldened font 2, \*y after,
  175. -                \*z before
  176. -bm    num    1i,1i+1v    \-    height of bottom margin
  177. -_bt    mac    \-    \-    print pottom title
  178. -bt    num    .5i+1v    \-    bottom of footer to bottom of page
  179. -_cf \*Z    mac    \-    \-    print contents of header line (double
  180. -                quotes around \*x, \*y before, \*z after)
  181. -cm    num    0    \-    0 if no cut marks, nonzero if cut marks
  182. -_cn \*Z    mac    \-    \-    print computer/site name; same as _i
  183. -_dd    div    \-    i    text of display
  184. -dg    str    \(**,\(dg    \-    footnote mark
  185. -dw    str    \f2current\fP    \-    name of current day of week
  186. -dy    str    \f2current\fP    \-    full date
  187. -_ed    mac    \-    b    end display
  188. -_ef    mac    \-    b    end footnote
  189. -_ei    mac    \-    b    move left margin to the right
  190. -_er    mac    \-    \-    print error message
  191. -_et    mac    \-    b,i    macro called at end of text
  192. -f0    str    \-    \-    left bottom title
  193. -f1    num    \-    i    current font number
  194. -f1    str    \f2date\fP,\-    \-    center bottom title
  195. -f2    num    \-    i    previous font number
  196. -f2    str    \-    \-    right bottom title
  197. -fc    num    \-    i    per-page footnote count
  198. -_fd    mac    \-    b,i    drop footnotes
  199. -fg    num    \-    i    gets fudge factor for footnote
  200. -fl    num    5.5i    \-    default footnote line length
  201. -_fn    mac    \-    \-    begin footnote
  202. -_fo    mac    \-    \-    bottom of page (footer) macro
  203. -fp    num    \-    i    current location of trap for _fo macro
  204. -_fs    mac    \-    i    print text/footnote separator
  205. -fs    num    \-    i    position where footnote printing should begin
  206. -_fx    mac    \-    i    collect overflow footnotes
  207. -_fy    div    \-    i    text of footnote overflow
  208. -_fz    mac    \-    i    move overflow footnotes from _fy to _tf
  209. -gs    num    \-    i    used to be sure footnotes fit
  210. -h0    num    0    i    current level 1 section number
  211. -h0    str    \-    \-    left header title
  212. -h1    num    0    i    current level 2 section number
  213. -h1    str    \f2\- page \-\fP    \-    center header title
  214. -h2    num    0    i    current level 3 section number
  215. -h2    str    \-    \-    right header title
  216. -h3    num    0    i    current level 4 section number
  217. -_hd    mac    \-    i    top of page (header) macro
  218. -_hf    mac    \-    \-    print header field name; same as _cf
  219. -_hn \*x    mac    \-    b    numbered section; if present, \*x is level
  220. -hn    num    0    i    current level of numbering (temporary)
  221. -hs    num    1v    \-    default intra-section spacing
  222. -_hu    mac    \-    b    unnumbered section header
  223. -_i \*Z    mac    \-    \-    print \*x in font 2, \*y after, \*z before;
  224. -                if no arguments, switch to font 2
  225. -i1    num    \-    i    current indent
  226. -i2    num    \-    i    previous indent
  227. -id    num    0    i    1 if in display, 0 otherwise
  228. -if    num    0    i    1 if in footnote, 0 otherwise
  229. -_is \*Z    mac    \-    \-    print \*x 2p bigger, \*y after, \*z before;
  230. -                if no arguments, increase point size by 2p
  231. -it    num    0    i    0 before _bt called, 1 after
  232. -l0    num    0    i    leftmost position for left margin
  233. -l1    num    \-    i    first level of indent for left margin
  234. -l2    num    \-    i    second level of indent for left margin
  235. -l3    num    \-    i    third level of indent for left margin
  236. -l4    num    \-    i    fourth level of indent for left margin
  237. -l5    num    \-    i    fifth level of indent for left margin
  238. -l6    num    \-    i    sixth level of indent for left margin
  239. -l7    num    \-    i    seventh level of indent for left margin
  240. -l8    num    \-    i    eighth level of indent for left margin
  241. -l9    num    \-    i    ninth level of indent for left margin
  242. -li    num    5n    \-    paragraph indent
  243. -ll    num    6i    \-    default line length
  244. -lm    num    0    i    current level of indent for left margin
  245. -lo    num    \-    i    previous level for left margin
  246. -_lp \*Y    mac    \-    b    labelled paragraph; \*x is label, \*y indent
  247. -lq    str    ",``    \-    left double quotation marks
  248. -mo    str    \f2current\fP    \-    name of current month
  249. -_mt    mac    \-    b    title
  250. -mt    num    1.5i+1v    \-    distance of title from top of page
  251. -_ng \*Z    mac    \-    \-    newsgroup name; same as _b
  252. -_nl    mac    \-    b    reset point size to default
  253. -ns    num    0    i    if nonzero, _fn does not call _fs
  254. -_op \*Z    mac    \-    \-    command option; same as _b
  255. -p1    num    0    i    1 after PDP-11(tm) footnote printed,
  256. -                0 before
  257. -_pa \*Z    mac    \-    \-    print protocol appellation; same as _i
  258. -_pd \*Y    mac    \-    \-    print PDP-11(tm), footnote; \*x after,
  259. -                \*y before
  260. -pd    num    1v,.3v    \-    intra-paragraph spacing
  261. -_pf    mac    \-    \-    print footer title
  262. -_pg \*x    mac    \-    b    paragraph; if \*x is l, left justify
  263. -pi    num    5n    \-    default paragraph indent
  264. -po    num    1.25i    \-    default page offset
  265. -ps    num    12p    \-    default point size
  266. -_pt \*x    mac    \-    \-    print header; \*x is distance from top of
  267. -                page
  268. -_qc \*Z    mac    \-    \-    print name of control char; \*x is name,
  269. -                in font 3, between <>, \*y after, \*z before
  270. -_qp \*Z    mac    \-    \-    print char; same as _b
  271. -_r    mac    \-    \-    switch to font 1
  272. -rq    str    ",''    \-    right double quotation marks
  273. -s1    num    \-    i    current point size
  274. -s2    num    \-    i    previous point size
  275. -_sd \*X    mac    \-    \-    start display; if \*x is c, center display
  276. -sf    num    \-    i    1 if center display, 0 otherwise
  277. -_si \*x    num    \-    \-    indent left margin by \*x (5n default)
  278. -_sm \*Z    mac    \-    \-    print \*x 2p smaller, \*y after, \*z before;
  279. -                if no arguments, decrease point size by 2p
  280. -_sn \*x    mac    \-    b    space by \*x (1v default), enter nospace mode
  281. -_sr \*x    mac    \-    \-    enter spacemode, space by \*x (1v default)
  282. -t2    num    0    i    0 if little/no space, nonzero otherwise
  283. -_tf    div    \-    i    text of footnotes
  284. -tm    num    1i-.5v    \-    height of top margin
  285. -tt    num    .5i-.5v    \-    distance from top of page to header
  286. -_ux \*Y    mac    \-    \-    print UNIX(tm), footnote; \*x after,
  287. -                \*y before
  288. -ux    num    0    i    1 after UNIX(tm) footnote printed,
  289. -                0 before
  290. -v1    num    \-    i    current vertical spacing
  291. -v2    num    \-    i    previous vertical spacing
  292. -vr    str    \-    \-    current version of news
  293. -vs    num    16p    \-    default vertical spacing
  294. -vx    num    0    i    1 after VAX(tm) footnote printed,
  295. -                0 before
  296. -_vx \*Y    mac    \-    \-    print VAX(tm), footnote; \*x after,
  297. -                \*y before
  298. -ws    str    \-    \-    used to construct error message
  299. -_ya    mac    \-    \-    same as calling _yf, _yi, _ys, _yv
  300. -_yf    mac    \-    \-    restore fonts saved by _zf
  301. -_yi    mac    \-    \-    restore indents saved by _zi
  302. -_ys    mac    \-    \-    restore point sizes saved by _zs
  303. -_yv    mac    \-    \-    restore vertical spacings saved by _zv
  304. -_za    mac    \-    \-    same as calling _zf, _zi, _zs, _zv
  305. -_zf    mac    \-    \-    save previous, current fonts
  306. -_zi    mac    \-    \-    save previous, current indents
  307. -_zs    mac    \-    \-    save previous, current point sizes
  308. -_zv    mac    \-    \-    save previous, current vertical spacings
  309. -.fi
  310. *-*-END-of-doc/mn.7-*-*
  311. echo x - doc/tmac.n 1>&2
  312. sed 's/.//' >doc/tmac.n <<'*-*-END-of-doc/tmac.n-*-*'
  313. -.\" The News macro package
  314. -.\"
  315. -.\" This  is  the macro package that is used to format news documents.  It
  316. -.\" was written because many sites do not have one of the -mm or -ms pack-
  317. -.\" ages that the documents use.   This is NOT compatible with EITHER, but
  318. -.\" (I hope) will become the standard for all news  documents  (man  pages
  319. -.\" excepted, since everyone seems to have -man.)
  320. -.\"
  321. -.\" This package was written using  only  the  "NROFF/TROFF Users' Guide",
  322. -.\" and  therefore  if  you  can run NROFF/TROFF, you can legitimately use
  323. -.\" this package.  However, because NROFF/TROFF are proprietary  programs,
  324. -.\" I  cannot  place  this  package in the public domain.  This should not
  325. -.\" matter, because if you legitimately have  NROFF/TROFF,  you  have  the
  326. -.\" documentation; if not, you can't run off the documentation anyway.
  327. -.\"
  328. -.\" This  package may be circulated freely with the news documentation; it
  329. -.\" may not be sold, but is to be distributed with  the  unformatted  news
  330. -.\" documents.  However,  the name of the author and the place at which it
  331. -.\" was written (in the author's own  time,  of  course)  are  not  to  be
  332. -.\" removed  from the package regardless of how it is modified or altered.
  333. -.\" Further, please do not distribute this package if you make any changes
  334. -.\" because  I  don't want to get bug reports of macros I haven't written;
  335. -.\" if you have a goodie you want me to add, send it to me and we'll talk.
  336. -.\" (I really do like feedback!)  I'd really appreciate your cooperation.
  337. -.\"
  338. -.\" Author:    Matt Bishop
  339. -.\"        Research Institute for Advanced Computer Science
  340. -.\"        Mail Stop 230-5
  341. -.\"         NASA Ames Research Center
  342. -.\"        Moffett Field, CA  94035
  343. -.\"
  344. -.\" version 1.0        September 28, 1985    mab@riacs.arpa
  345. -.\"     initial version
  346. -.\" version 1.1        October 25, 1985    mab@riacs.arpa
  347. -.\"    fixed an incredibly obscure footnote bug (that occurred twice in
  348. -.\"    the news documentation!) which put footnoted words on  one  page
  349. -.\"    and the footnote on the next if the word was in the next-to-last
  350. -.\"    or last line; commented it, and generally cleaned up
  351. -.\" Version 1.2        October 27, 1985    mab@riacs.arpa
  352. -.\"    Added a few more comments and a check to keep footnotes lined up
  353. -.\"    with the bottom margin.
  354. -.\" Version 1.3        February 12, 1986    mab@riacs.arpa
  355. -.\"    Added an error check to catch unmatched ef's and ed's
  356. -.\"
  357. -.\" **********
  358. -.\" these preserve and restore various things
  359. -.\" they are used to shorten other macros
  360. -.de yf                    \" restore fonts
  361. -.ft \\n(f2                \" previous font
  362. -.ft \\n(f1                \" current font
  363. -..
  364. -.de yi                    \" restore indents
  365. -'in \\n(i2u                \" previous indent
  366. -'in \\n(i1u                \" current indent
  367. -..
  368. -.de ys                    \" restore point sizes
  369. -.ps \\n(s2                \" previous point size
  370. -.ps \\n(s1                \" current point size
  371. -..
  372. -.de yv                    \" restore vertical spacings
  373. -.vs \\n(v2u                \" previous vertical spacing
  374. -.vs \\n(v1u                \" current vertical spacing
  375. -..
  376. -.de ya                    \" restore everything
  377. -.yf                    \" restore fonts
  378. -.yi                    \" restore indents
  379. -.ys                    \" restore point sizes
  380. -.yv                    \" restore vertical spacing
  381. -..
  382. -.de zf                    \" preserve fonts
  383. -.nr f1 \\n(.f                \" current font
  384. -.ft                    \" switch to previous font
  385. -.nr f2 \\n(.f                \" previous font
  386. -.ft                    \" back to current font
  387. -..
  388. -.de zi                    \" preserve indents
  389. -.nr i1 \\n(.iu                \" current indent
  390. -'in                    \" switch to previous indent
  391. -.nr i2 \\n(.iu                \" previous indent
  392. -'in                    \" back to current indent
  393. -..
  394. -.de zs                    \" preserve point sizes
  395. -.nr s1 \\n(.su                \" current point size
  396. -.ps                    \" switch to previous point size
  397. -.nr s2 \\n(.su                \" previous point size
  398. -.ps                    \" back to current point size
  399. -..
  400. -.de zv                    \" preserve vertical spacings
  401. -.nr v1 \\n(.vu                \" current vertical spacing
  402. -.vs                    \" switch to previous vertical spacing
  403. -.nr v2 \\n(.vu                \" previous vertical spacing
  404. -.vs                    \" back to current vertical spacing
  405. -..
  406. -.de za                    \" save everything
  407. -.zf                    \" save fonts
  408. -.zi                    \" save indents
  409. -.zs                    \" save point sizes
  410. -.zv                    \" save vertical spacings
  411. -..
  412. -.\" **********
  413. -.\" these actually print the header and footer titles
  414. -.\" they are defined separately from the "hd" and "fo" macros
  415. -.\" to make user redefinition easy
  416. -.de pt                    \" print header title
  417. -.                    \" omit header on first page
  418. -.if \\n%>1 \{\
  419. -'    sp |\\$1u            \" move to proper position
  420. -.    ft 1                \" change to default font
  421. -.    ps \\n(ps            \" change to default point size
  422. -.    vs \\n(vs            \" change to default spacing
  423. -.    tl '\\*(h0'\\*(h1'\\*(h2'    \" center title
  424. -.    vs                \" restore current vertical spacing
  425. -.    ps                \" restore current point size
  426. -.    ft                \" restore current font
  427. -.\}
  428. -..
  429. -.de pf                    \" print footer title
  430. -.ft 1                    \" change to default font
  431. -.ps \\n(ps                \" change to default point size
  432. -.vs \\n(vs                \" change to default spacing
  433. -.ie \\n%=1 .tl '\\*(h0'\\*(h1'\\*(h2'    \" on first page, print the header here
  434. -.el        .tl '\\*(f0'\\*(f1'\\*(f2'    \" on other pages, print the footer
  435. -.vs                    \" restore current vertical spacing
  436. -.ps                    \" restore current point size
  437. -.ft                    \" restore current font
  438. -..
  439. -.\" **********
  440. -.\" these are the top of page (header) and bottom of page (footer) macros
  441. -.\" they don't actually print anything, just call the right macros
  442. -.de hd                    \" header -- do top of page processing
  443. -.if t .if \\n(cm .tl '\(rn'''        \" drop cut mark if needed
  444. -.pt \\n(ttu                \" print header
  445. -.nr fc 0 1                \" init footnote count
  446. -.nr fs \\n(.pu-\\n(bmu-1u        \" if any footnotes, start print here
  447. -.nr fp 0-\\n(bmu            \" reset current footer place
  448. -.ch fo -\\n(bmu                \" reset footer trap
  449. -.if \\n(dn .fz                \" put leftover footnotes st bottom
  450. -.ya                    \" restore font, etc.
  451. -'sp |\\n(tmu                \" move to top of body
  452. -.ns                    \" don't allow any more space
  453. -..
  454. -.de fo                    \" footer -- do bottom of page processing
  455. -.za                    \" save font, etc.
  456. -.rs                    \" you want motions here
  457. -.nr dn 0                \" clobber diversion size register
  458. -.if \\n(fc .fd                \" now print the footnotes, if any
  459. -'bp                    \" force out page
  460. -..
  461. -.\" **********
  462. -.\" these are the footnote macros
  463. -.\" here's an overview:
  464. -.\"    Footnotes are processed in environment #1, which is  initialized
  465. -.\"    at the bottom of this package.  When "fn" is called, nroff/troff
  466. -.\"    switches to this environment.  The body of the footnote is saved
  467. -.\"    in  the  diversion  "tf" (for "temporary footnote"), so you will
  468. -.\"    NEVER spring a trap during the first reading of a footnote. When
  469. -.\"    "ef" ("end footnote" is called,  the  diversion  is  closed.  If
  470. -.\"    this  is the first footnote on the page (ie, the number register
  471. -.\"    "fc" is 1), and the footnote height (plus the height of 1  line)
  472. -.\"    crosses  the  bottom  margin,  you get the footnoted word on one
  473. -.\"    page and the footnote on the other.  In this case we  just  call
  474. -.\"    "fo"  manually  (taking case it cannot be re-invoked on the same
  475. -.\"    page!)  If this situation does not occur,  we  just  adjust  the
  476. -.\"    footer  trap's  position upwards (we'll get to how far in a min-
  477. -.\"    ute); if this puts the trap above the current line,  we  reposi-
  478. -.\"    tion  the trap just beneath the current line to be sure of trig-
  479. -.\"    triggering it once the current line is forced out.
  480. -.\"     To reposition the footer trap, we proceed as  follows.  Because
  481. -.\"    the  trap  may be sprung in the middle of a line, it is possible
  482. -.\"    that the footnote will not fit on the page (regardless of  where
  483. -.\"    on the page the footnoted word occurs -- really!) if we move the
  484. -.\"    trap up by the size of  the  footnote  diversion  "tf".  So,  we
  485. -.\"    fudge things a little bit -- for the first footnote on each page
  486. -.\"    we move the footer trap up 1 extra line ("line" being 1v in env-
  487. -.\"    ironment  #0).   Unless  the point size and vertical spacing are
  488. -.\"    increased between the first footnote and the footer trap's being
  489. -.\"    sprung,  this  will  keep  the footnotes on the same page as the
  490. -.\"    footnoted word.  But as there may be now as much as 1v of  space
  491. -.\"    between the footnote and the bottom margin, which looks HIDEOUS,
  492. -.\"    we use the number register "fs" to mark where  the  footer  trap
  493. -.\"    would  REALLY go, and just space to it when it comes time to put
  494. -.\"    out the footnotes.
  495. -.de fd                    \" dump footnotes
  496. -.nr gs 1v                \" get a measure of 1 line in env #0
  497. -.ev 1                    \" switch to footnote environment
  498. -.nr gs +2v                \" min of 2 lines of footnotes
  499. -.                    \" if the number register ns > 0,
  500. -.                    \" the last text line may contain a
  501. -.                    \" footnote that is too big to fit;
  502. -.                    \" this checks for such a note and
  503. -.                    \" if so, forces the footnote into
  504. -.                    \" the "fy" diversion that carries
  505. -.                    \" it onto the next text page
  506. -.ie (\\n(nsu>0)&(\\n(gsu>=\\n(.tu) 'sp \\n(gsu    \" be sure you can get it down
  507. -.el .if \\n(fsu>\\n(nlu 'sp \\n(fsu-\\n(nlu    \" move to footnote start position
  508. -'nf                    \" don't reprocess footnotes
  509. -'in 0                    \" don't indent them any more either
  510. -.tf                    \" drop text of footnotes
  511. -.rm tf
  512. -.if '\\n(.z'fy' .di            \" end overflow diversion, if any
  513. -.nr fc 0                \" re-init footnote count
  514. -.ev                    \" return to usual environment
  515. -..
  516. -.de fn                    \" start footnote
  517. -.                    \" look for nested footnotes -- ILLEGAL
  518. -.ie \\n(if>0 .er "footnote within footnote"
  519. -.el .da tf                \" append footnote to footnote diversion
  520. -.nr if +1                \" increment level of footnoting
  521. -.nr fc +1                \" one more footnote on this page
  522. -.if \\n(fc=1 .nr fp -1v            \" The reason for this "fudge factor"
  523. -.                    \" is that there is no way to force
  524. -.                    \" NROFF/TROFF to invoke a macro at
  525. -.                    \" the end of each line.  At times,
  526. -.                    \" the trap boundary will not match up
  527. -.                    \" with the bottom of a line, so the
  528. -.                    \" "fo" trap which is set at 2320 may
  529. -.                    \" not be triggered until 2340 -- and
  530. -.                    \" then the footnote won't fit.  This
  531. -.                    \" gives some slack so the footnote is
  532. -.                    \" more likely to fit. *sigh*
  533. -.ev 1                    \" enter footnote environment
  534. -.if \\n(fc=1 .fs            \" drop separator if first footnote
  535. -.br                    \" flush out any previous line in footnote
  536. -.fi                    \" process footnote in fill mode
  537. -..
  538. -.de ef                    \" end footnote
  539. -.br                    \" flush out the line in footnote
  540. -.ie \\n(if<=0 .er "end footnote has no corresponding begin footnote"
  541. -.el \{\
  542. -.    nr if -1            \" decrement level of footnoting
  543. -.    nr fg 2v            \" remember this for repositioning fo
  544. -.    ev                \" back to usual environment
  545. -.    if \\n(if=0 \{\
  546. -.        di            \" end of footnote proper
  547. -.        nr fp -\\n(dnu        \" "fo" will be moved at least up this far
  548. -.        nr fs -\\n(dnu        \" increase size of footnote
  549. -.        ch fo \\n(fpu        \" reposition "fo" trap (first guess)
  550. -.                    \" the first part of the "ie" clause
  551. -.                    \" is taken in the special case
  552. -.                    \" described above
  553. -.        ie (\\n(fc=1)&((\\n(nlu+1v+\\n(fgu)>=(\\n(.pu-\\n(bmu)) \{\
  554. -.            nr ns \\n(dnu    \" suppress footnote separator
  555. -.                    \" since this footnote contains it
  556. -.                    \" keep "fo" from being invoked twice
  557. -.            ch fo \\n(.pu+1i
  558. -.            fo        \" force the page out AT ONCE
  559. -.            nr ns 0        \" re-enable footnote separator
  560. -.        \}
  561. -.                    \" footnote won't fit completely
  562. -.        el .if (\\n(nlu+1v)>=(\\n(.pu+\\n(fpu) .ch fo \\n(nlu+1u
  563. -.    \}
  564. -.\}
  565. -..
  566. -.de fs                    \" drop footnote separator
  567. -.                    \" only if not already dropped
  568. -.if \\n(ns=0 \l'1i'
  569. -.nr ns 0                \" in case footnotes are over 1 page long
  570. -..
  571. -.de fx                    \" process footnote overflow
  572. -.if \\n(fc .di fy            \" stuff them in the right place
  573. -..
  574. -.de fz                    \" deposit footnote overflow
  575. -.fn                    \" treat it as a footnote
  576. -.nf                    \" it's already been processed
  577. -.in 0                    \"   and indented
  578. -.fy                    \" "fx" put it here
  579. -.ef                    \" end the footnote
  580. -..
  581. -.\" **********
  582. -.\" the ones after here are user-invoked (like "fn" and "ef" above)
  583. -.\" title, author, etc.
  584. -.de mt                    \" main title
  585. -\&
  586. -.sp |\\n(mtu                \" space
  587. -.ft 3                    \" in bold
  588. -.ps \\n(ps+2p                \" large point size and
  589. -.vs \\n(vs+2p                \" vertical spacing
  590. -.ce 1000                \" center the title
  591. -.nr t2 1                \" space it
  592. -..
  593. -.de au                    \" author
  594. -.nr t2 0                \" spacing here
  595. -.sp 2v                    \" space
  596. -.ft 2                    \" in italics
  597. -.ps \\n(ps                \" usual point size and
  598. -.vs \\n(vs                \" vertical spacing
  599. -.ce 1000                \" center the name(s)
  600. -..
  601. -.de ai                    \" author's institution
  602. -.if \\n(t2 .sp 2v            \" space after a title
  603. -.nr t2 0                \" institution
  604. -.ft 2                    \" in italics
  605. -.ps \\n(ps                \" usual point size and
  606. -.vs \\n(vs                \" vertical spacing
  607. -.ce 1000                \" center the name(s)
  608. -..
  609. -.de bt                    \" begin text macro
  610. -.nr t2 0                \" hold it here
  611. -.nr it +1                \" mark as called
  612. -.ce 0                    \" end any centering
  613. -.sn 3v                    \" a little bit of space
  614. -..
  615. -.\" paragraph
  616. -.de si                    \" start indented section
  617. -.nr lo \\n(lm                \" remember the current level
  618. -.nr lm +1                \" go to the next level
  619. -.ie '\\$1'' .nr l\\n(lm \\n(l\\n(lo+5n    \" if no arg, indent 5n
  620. -.el         .nr l\\n(lm \\$1n        \" otherwise, indent that much
  621. -..
  622. -.de ei                    \" end indent
  623. -.nr lm -1                \" down one level
  624. -.if \\n(lm<0 .nr lm 0            \" make sure you don't go too far
  625. -..
  626. -.de pg                    \" plain old paragraph
  627. -.if !\\n(it .bt                \" end the title and such
  628. -.sn \\n(pdu                \" inter-paragraph spacing
  629. -.ft 1                    \" reset a few things (paranoia)
  630. -.                    \" these ONLY if not in footnote
  631. -.ie \\n(if=0 \{\
  632. -.    ps \\n(ps            \" reset point size
  633. -.    vs \\n(vs            \" reset vertical spacing
  634. -.    ne 1v+\\n(.Vu            \" slightly more than 1 line
  635. -.\}
  636. -.el \{\
  637. -.    ps \\n(ps-2p            \" reset point size
  638. -.    vs \\n(vs-2p            \" reset vertical spacing
  639. -.\}
  640. -.in \\n(l\\n(lmu            \" stop any indenting
  641. -.ce 0                    \" stop any centering
  642. -.if !'\\$1'L' .if !'\\$1'l' .ti +\\n(piu    \" indent the sucker
  643. -..
  644. -.de lp                    \" labelled paragraph
  645. -.pg l                    \" reset paragraph
  646. -.if \\n(.$>1 .nr li \\$2n        \" if indent given use it
  647. -.in +\\n(liu                \" indent for paragraph
  648. -.ti -\\n(liu                \" force first line NOT to indent
  649. -.ta +\\n(liu                \" for the label
  650. -\&\\$1\t\c
  651. -.if \\w'\\$1'u>=(\\n(l\\n(lmu+\\n(liu) .br    \" don't overwrite
  652. -..
  653. -.\" section
  654. -.de hu                    \" header, unnumbered
  655. -.if !\\n(it .bt                \" end the title and such
  656. -.br                    \" force out previous line
  657. -.b
  658. -.ps \\n(ps
  659. -.vs \\n(vs
  660. -.in \\n(l\\n(lmu            \" stop any indenting
  661. -.sn \\n(hsu                \" inter-section spacing
  662. -.ne 3v+\\n(.Vu                \" slightly more than 3 lines
  663. -.fi                    \" process the text, too
  664. -..
  665. -.de hn                    \" header, numbered
  666. -.hu
  667. -.ie !'\\$1'' .nr hn \\$1
  668. -.el          .nr hn 1
  669. -.ie \\n(hn>0 .nr hn -1
  670. -.el          .nr hn 0
  671. -.ie \\n(hn=0 \{\
  672. -.    nr h0 +1            \" add 1 to main section header
  673. -.    nr h1 0                \" zap remaining section numbers
  674. -.    nr h2 0                \" zap remaining section numbers
  675. -.    nr h3 0                \" zap remaining section numbers
  676. -\\n(h0.
  677. -.\}
  678. -.el .ie \\n(hn=1 \{\
  679. -.    nr h1 +1            \" add 1 to the section header
  680. -.    nr h2 0                \" zap remaining section numbers
  681. -.    nr h3 0                \" zap remaining section numbers
  682. -\\n(h0.\\n(h1.
  683. -.\}
  684. -.el .ie \\n(hn=2 \{\
  685. -.    nr h2 +1            \" add 1 to the section header
  686. -.    nr h3 0                \" zap remaining section numbers
  687. -\\n(h0.\\n(h1.\\n(h2.
  688. -.\}
  689. -.el \{\
  690. -.    nr h3 +1            \" add 1 to the section number
  691. -\\n(h0.\\n(h1.\\n(h2.\\n(h3.
  692. -.\}
  693. -.if \\n(.$=2 \\$2
  694. -..
  695. -.\" displays (no floats, thank God!)
  696. -.de sd                    \" start display
  697. -.                    \" look for nested displays -- ILLEGAL
  698. -.ie \\n(id>0 .er "display within display"
  699. -.el \{\
  700. -.    ie '\\$1'c' .nr sf 1        \" center the sucker
  701. -.    el          .nr sf 0        \" don't center it
  702. -.\}
  703. -.sn \\n(pdu                \" a little bit of space
  704. -.ev 2                    \" switch to display environment
  705. -.nf                    \" what you type is what you get
  706. -.if \\n(id=0 .di dd            \" start saving text
  707. -.rs                    \" don't eat leading space
  708. -.nr id +1                \" increment level of display
  709. -..
  710. -.de ed                    \" end display
  711. -.br                    \" flush line
  712. -.ie \\n(id<=0 .er "end display has no corresponding begin display"
  713. -.el \{\
  714. -.    nr id -1            \" decrement level of display
  715. -.    if \\n(id=0 \{\
  716. -.        di            \" end diversion
  717. -.        fi            \" resume filling
  718. -.        in -\\n(piu        \" dedent
  719. -.        ev            \" pop environment
  720. -.        ne \\n(dnu        \" be sure you have room
  721. -.        nf            \" don't reprocess display
  722. -.        rs            \" don't eat leading space
  723. -.        zi            \" save indents
  724. -.        ie \\n(sf .in (\\n(llu-\\n(dlu)/2u    \" center on the line length
  725. -.        el .in +\\n(piu        \" indent the sucker
  726. -.        dd            \" drop display
  727. -.        yi            \" restore indents
  728. -.    \}
  729. -.\}
  730. -.fi                    \" resume filling
  731. -.sn \\n(pdu                \" a little bit of space
  732. -..
  733. -.\" **********
  734. -.\" fonts -- if argument(s), apply only to first
  735. -.de b                    \" bold (font 3)
  736. -.ie \\n(.$>0 \\&\\$3\\f3\\$1\\fP\\$2
  737. -.el .ft 3
  738. -..
  739. -.de i                    \" italics (font 2)
  740. -.ie \\n(.$>0 \\&\\$3\\f2\\$1\\fP\\$2
  741. -.el .ft 2
  742. -..
  743. -.de r                    \" roman (font 1)
  744. -.ft 1                    \" just restore it
  745. -..
  746. -.de bi                    \" bold italics (embolden font 2)
  747. -\\&\\$3\c
  748. -\\kb\\f2\\$1\\fP\\h'|\\nbu+2u'\\f2\\$1\\fP\\$2
  749. -..
  750. -.\" **********
  751. -.\" point sizes -- if argument(s), apply only to first
  752. -.de sm                    \" reduce point size by 2
  753. -.ie \\n(.$>0 \\&\\$3\\s-2\\$1\\s0\\$2
  754. -.el .ps -2
  755. -..
  756. -.de is                    \" increase point size by 2
  757. -.ie \\n(.$>0 \\&\\$3\\s+2\\$1\\s0\\$2
  758. -.el .ps +2
  759. -..
  760. -.de nl                    \" return to normal size
  761. -.ps \\n(ps                \" just reset the point size
  762. -..
  763. -.\" **********
  764. -.\" handy force space/inhibit more space macros
  765. -.de sn                    \" space, then turn on nospace mode
  766. -.sp \\$1                \" space
  767. -.ns                    \" ignore any more space requests
  768. -..
  769. -.de sr                    \" force out space
  770. -.rs                    \" turn on spacing mode
  771. -.sp \\$1                \" space
  772. -..
  773. -.\" **********
  774. -.\" end of text and error macros
  775. -.de et                    \" end of text macro
  776. -.br                    \" flush out remaining line
  777. -.tf                    \" dump any footnotes
  778. -.                    \" check for open displays or footnotes
  779. -.if \\n(id>0 .er "unfinished display"
  780. -.if \\n(if>0 .er "unfinished footnote"
  781. -.                    \" this one means an -mn bug (*sigh*)
  782. -.if !'\\n(.z'' .er "diversion \\n(.z not closed"
  783. -..
  784. -.de er                    \" print error message
  785. -.                    \" flag it as an error
  786. -.ds ws "** ERROR **
  787. -.                    \" if you have it, give the file name
  788. -.if !'\\*(.f'' .as ws " file \\*(.f,
  789. -.                    \" put out the line number
  790. -.as ws " line \\n(.c
  791. -.                    \" and finally the error message
  792. -.tm \\*(ws: \\$1
  793. -..
  794. -.\" **********
  795. -.\" macros in this section are VERY specific to the news documentation
  796. -.de pa                    \" protocol appellation (darn names!)
  797. -\\&\\$3\\f2\\$1\\fP\\$2
  798. -..
  799. -.de ng                    \" news group name
  800. -\\&\\$3\\f3\\$1\\fP\\$2
  801. -..
  802. -.de cn                    \" computer name
  803. -\\&\\$3\\f2\\$1\\fP\\$2
  804. -..
  805. -.de hf                    \" header field
  806. -\\&\\$3\\*(lq\\$1\\*(rq\\$2
  807. -..
  808. -.de cf                    \" contents of field
  809. -\\&\\$3\\*(lq\\$1\\*(rq\\$2
  810. -..
  811. -.de qc                    \" quote control char (command)
  812. -\\&\\$3\\f3<\\s-2\\$1\\s0>\\fP\\$2
  813. -..
  814. -.de qp                    \" quote printing char (command)
  815. -\\&\\$3\\f3\\$1\\fP\\$2
  816. -..
  817. -.de op                    \" option
  818. -\\&\\$3\\f3\\$1\\fP\\$2
  819. -..
  820. -.\" **********
  821. -.\" trademarked names
  822. -.de pd                    \" print "PDP-11"
  823. -.ie \\n(p1 \\&\\$2\\s-1PDP\\s0-11\\$1
  824. -.el \{\
  825. -.    nr p1 +1            \" mark footnote as dropped
  826. -\\&\\$2\\s-1PDP\\s0-11\\*(dg\\$1
  827. -.    fn                \" put out the footnote
  828. -\\&\\*(dgPDP-11 is a trademark of Digital Equipment Corporation.
  829. -.    ef                \" short and sweet ...
  830. -.\}
  831. -..
  832. -.de ux                    \" print "UNIX"
  833. -.ie \\n(ux \\&\\$2\\s-1UNIX\\s0\\$1
  834. -.el \{\
  835. -.    nr ux +1            \" mark footnote as dropped
  836. -\\&\\$2\\s-1UNIX\\s0\\s-5\\u\\*(rg\\s0\\d\\$1
  837. -.    fn                \" put out the footnote
  838. -\\&\\s-5\\u\\*(rg\\s0\\dUNIX is a registered trademark of AT&T.
  839. -.    ef                \" short and sweet ...
  840. -.\}
  841. -..
  842. -.de vx                    \" print "VAX"
  843. -.ie \\n(vx \\&\\$2\\s-1VAX\\s0\\$1
  844. -.el \{\
  845. -.    nr vx +1            \" mark footnote as dropped
  846. -\\&\\$2\\s-1VAX\\s0\\*(dg\\$1
  847. -.    fn                \" put out the footnote
  848. -\\&\\*(dgVAX is a trademark of Digital Equipment Corporation.
  849. -.    ef                \" short and sweet ...
  850. -.\}
  851. -..
  852. -.\" **********
  853. -.\" set up string and number registers
  854. -.                    \" set up for the date
  855. -.if \n(mo=1  .ds mo January
  856. -.if \n(mo=2  .ds mo February
  857. -.if \n(mo=3  .ds mo March
  858. -.if \n(mo=4  .ds mo April
  859. -.if \n(mo=5  .ds mo May
  860. -.if \n(mo=6  .ds mo June
  861. -.if \n(mo=7  .ds mo July
  862. -.if \n(mo=8  .ds mo August
  863. -.if \n(mo=9  .ds mo September
  864. -.if \n(mo=10 .ds mo October
  865. -.if \n(mo=11 .ds mo November
  866. -.if \n(mo=12 .ds mo December
  867. -.ds dy "\*(mo \n(dy, 19\n(yr
  868. -.if \n(dw=1  .ds dw Sunday
  869. -.if \n(dw=2  .ds dw Monday
  870. -.if \n(dw=3  .ds dw Tuesday
  871. -.if \n(dw=4  .ds dw Wednesday
  872. -.if \n(dw=5  .ds dw Thursday
  873. -.if \n(dw=6  .ds dw Friday
  874. -.if \n(dw=7  .ds dw Saturday
  875. -.                    \" NROFF dependencies
  876. -.if n \{\
  877. -.                    \" string registers
  878. -.    ds dg *
  879. -.    ds rg *
  880. -.    ds lq ""
  881. -.    ds rq ""
  882. -.    ds f1 "\*(dy
  883. -.                    \" number registers
  884. -.    nr hs 1v            \" space before section header
  885. -.    nr pd 1v            \" inter-paragraph spacing
  886. -.    nr bm 1.0i            \" height of bottom margin
  887. -.\}
  888. -.if t \{\
  889. -.                    \" string registers
  890. -.    ds dg \(dg
  891. -.    ds rg \(rg
  892. -.    ds lq ``
  893. -.    ds rq ''
  894. -.                    \" number registers
  895. -.    nr hs 1v            \" space before section header
  896. -.    nr pd 0.3v            \" inter-paragraph spacing
  897. -.    nr bm 1.0i+1v            \" height of bottom margin (wacky laser)
  898. -.\}
  899. -.                    \" these are the same for [NT]ROFF
  900. -.ds vr "News Version B 2.11
  901. -.ds h1 - % -
  902. -.nr bt 0.5i+1v                \" bottom of page to footer
  903. -.nr cm 0                \" no cut marks
  904. -.nr fc 0 1                \" init footnote count
  905. -.nr fl 5.5i                \" footnote line length
  906. -.nr fp 0-\n(bmu                \" fo macro trap location
  907. -.nr h0 0                \" init section header level 0
  908. -.nr h1 0                \" init section header level 1
  909. -.nr h2 0                \" init section header level 2
  910. -.nr h3 0                \" init section header level 3
  911. -.nr id 0                \" 1 in display
  912. -.nr if 0                \" 1 in keep
  913. -.nr it 0                \" 1 when beyond title, etc.
  914. -.nr li 5n                \" indent for labelled paragraph
  915. -.nr ll 6.5i                \" line length
  916. -.nr lm 0                \" left margin
  917. -.nr l0 0                \" first indent level
  918. -.nr mt 1.5i+1v                \" title goes down this far
  919. -.nr pi 5n                \" regular paragraph indent
  920. -.nr po 1.0i                \" page offset
  921. -.nr ps 10                \" point size
  922. -.nr tm 1.0i                \" height of top margin
  923. -.nr tt 0.5i-0.5v            \" top of page to header
  924. -.nr p1 0                \" no PDP-TM message yet
  925. -.nr ux 0                \" no UNIX-TM message yet
  926. -.nr vx 0                \" no VAX-TM message yet
  927. -.nr vs 12                \" vertical spacing
  928. -.\" set things up
  929. -.po \n(pou                \" set page offset
  930. -.ps \n(ps                \" set previous, current
  931. -.ps \n(ps                \"   point sizes
  932. -.vs \n(vs                \" set previous, current
  933. -.vs \n(vs                \"   vertical spacings
  934. -.ll \n(llu                \" set line length
  935. -.lt \n(llu                \" set title line length
  936. -.ev 1                    \" *** footnote environment
  937. -.ps \n(ps-2p                \" set previous, current
  938. -.ps \n(ps-2p                \"   point sizes
  939. -.vs \n(vs-2p                \" set previous, current
  940. -.vs \n(vs-2p                \"   vertical spacings
  941. -.ll \n(flu                \" set line length
  942. -.lt \n(flu                \" set title line length
  943. -.ev                    \" *** pop environment
  944. -.ev 2                    \" *** footnote environment
  945. -.ps \n(ps                \" set previous, current
  946. -.ps \n(ps                \"   point sizes
  947. -.vs \n(vs                \" set previous, current
  948. -.vs \n(vs                \"   vertical spacings
  949. -.ll \n(llu                \" set line length
  950. -.lt \n(llu                \" set title line length
  951. -.ev                    \" *** pop environment
  952. -.\" install traps
  953. -.wh 0i hd                \" position header trap
  954. -.wh -\n(bmu fo                \" position footer trap
  955. -.wh \n(.pu+1i fx            \" put footnote overflow trap here
  956. -.ch fx -\n(bmu                \" move it over fo
  957. -.wh -\n(btu pf                \" print the bottom margin here
  958. -.em et                    \" at end of file, call et
  959. -.\" couple of miscellaneous requests
  960. -.bd S 3 3                \" embolden special font chars if B
  961. -.hy 2                    \" don't hyphenate last lines
  962. *-*-END-of-doc/tmac.n-*-*
  963. echo x - doc/copyright.mn 1>&2
  964. sed 's/.//' >doc/copyright.mn <<'*-*-END-of-doc/copyright.mn-*-*'
  965. -.ds .f copyright.mn
  966. -.ds h0 "Copyright Law
  967. -.ds h1
  968. -.ds h2 %
  969. -.ds f0 "\*(vr
  970. -.ds f1
  971. -.ds f2 "February 26, 1986
  972. -.mt
  973. -Copyright Law
  974. -.au
  975. -Jordan J. Breslow
  976. -.ai
  977. -1225 Alpine Road, Suite 200
  978. -Walnut Creek, CA 94596
  979. -+1 415 932 4828
  980. -.bt
  981. -.fn
  982. -\(co Copyright 1986 Breslow, Redistributed by permission
  983. -.ef
  984. -.pg
  985. -I am an attorney practicing copyright law and computer
  986. -law.  I read a series of queries in net.legal about
  987. -copyright law and was dismayed to find that people who
  988. -had no idea what they were talking about were spreading
  989. -misinformation over the network.  Considering that the
  990. -penalties for copyright infringement can include
  991. -$50,000.00 damages per infringed work, attorneys fees,
  992. -court costs, criminal fines and imprisonment, and
  993. -considering that ignorance is no excuse and innocent
  994. -intent is not even a recognized defense, I cringe to see
  995. -the network used as a soapbox for the ill-informed.  For
  996. -that reason, this article will discuss copyright law and
  997. -license law as they pertain to computer software.
  998. -.pg
  999. -My goal is to enable readers to determine when they
  1000. -should be concerned about infringing and when they can
  1001. -relax about it.  I also want to let programmers know how
  1002. -to obtain copyright for their work.  I'll explain the
  1003. -purpose of software licenses, and discuss the effect
  1004. -that the license has on copyright.  For those of you who
  1005. -are programmers, I'll help you decide whether you own
  1006. -the programs you write on the job or your boss owns
  1007. -them.  I will also mention trademark law and patent law
  1008. -briefly, in order to clarify some confusion about which
  1009. -is which.  Incidentally, if you read this entire essay,
  1010. -you will be able to determine whether or not the essay
  1011. -is copyrighted and whether or not you can make a
  1012. -printout of it.
  1013. -.pg
  1014. -This is a long article, and you may not want to
  1015. -read all of it.  Here is an outline to help you decide
  1016. -what to read and what to ignore:
  1017. -.nf
  1018. -.si 10
  1019. -1.    The Meaning of Copyright from the Viewpoint of the Software User
  1020. -1.1    A bit of history
  1021. -1.2    The meaning of \f2copyright\fP
  1022. -1.3    The meaning of \f2public domain\fP
  1023. -1.4    A hypothetical software purchase
  1024. -1.5    Can you use copyrighted software?
  1025. -1.6    Can you make a backup copy?
  1026. -1.7    Licenses may change the rules
  1027. -1.8    Can you modify the program?
  1028. -1.9    Can you break the copy protection scheme?
  1029. -1.10    Summary
  1030. -.sp
  1031. -2.    Copyright Sounds Neat -- How Do I Get One? Or, How Do I Know If
  1032. -    this Program is Copyrighted?
  1033. -2.1    How do you get a copyright?
  1034. -2.2    How do you lose a copyright?
  1035. -2.3    How do you waste a stamp?
  1036. -2.4    Do you have to register?
  1037. -2.5    How copyright comes into existence
  1038. -2.6    The copyright notice
  1039. -2.7    Advantages of registration
  1040. -2.8    A test to see if you understand this article
  1041. -.sp
  1042. -3.    Who Owns The Program You Wrote?
  1043. -3.1    Introduction
  1044. -3.2    Programs written as an employee
  1045. -3.3    Programs written as a contractor
  1046. -.sp
  1047. -4.    A Brief Word about Licenses
  1048. -4.1    Why a license?
  1049. -4.2    Is it valid?
  1050. -.sp
  1051. -.5    I Have a Neat Idea.  Can I Trademark it? What about a Patent?
  1052. -5.1    Trademark law explained
  1053. -5.2    Patent law
  1054. -.sp
  1055. -6.    Conclusion
  1056. -.ei
  1057. -.fi
  1058. -.sp 2
  1059. -.hn 1
  1060. -The Meaning of Copyright from the Viewpoint of the Software User
  1061. -.hn 2
  1062. -A bit of history
  1063. -.pg
  1064. -If you're not interested in history, you can
  1065. -skip this paragraph.
  1066. -.i Modern
  1067. -copyright law first came
  1068. -into existence in 1570,  by an act of Parliament called
  1069. -the Statute of Anne.  Like most laws, it hasn't changed
  1070. -much since.  It was written with books and pictures in
  1071. -mind.  Parliament, lacking the foresight to predict the
  1072. -success of the Intel and IBM corporations, failed to
  1073. -consider the issue of copyrighting computer programs. 
  1074. -.pg
  1075. -At first, courts questioned whether programs could be
  1076. -copyrighted at all.  The problem was that judges
  1077. -couldn't read the programs and they figured the
  1078. -Copyright Law was only meant to apply to things humans
  1079. -(which arguably includes judges) could read without the
  1080. -aid of a machine.  I saw some mythical discussion about
  1081. -that in some of the net.legal drivel.  Let's lay that to
  1082. -rest:  programs are copyrightable as long as there is
  1083. -even a minimal amount of creativity.  The issue was laid
  1084. -to rest with the Software Act of 1980.  That Act
  1085. -modified the Copyright Act (which is a Federal law by
  1086. -the way), in such a way as to make it clear that
  1087. -programs are copyrightable.  The few exceptions to this
  1088. -rule will rarely concern anyone.  The next question to
  1089. -arise was whether a program was copyrightable if it was
  1090. -stored in ROM rather than on paper.   The decision in
  1091. -the Apple v. Franklin case laid that to rest:  it is.
  1092. -.hn 2
  1093. -The meaning of \f2copyright\fP
  1094. -.pg
  1095. -Now, what is copyright?  As it is commonly
  1096. -understood, it is the right to make copies of something
  1097. --- or to put it the other way around, it is the right to
  1098. -prohibit other people from making copies.  This is known
  1099. -as an exclusive right -- the exclusive right to
  1100. -.i reproduce ,
  1101. -in the biological language of the Copyright
  1102. -Act -- and what most people don't know is that copyright
  1103. -involves not one, not two, but five exclusive rights.   
  1104. -These are (1) the exclusive right to make copies, (2)
  1105. -the exclusive right to distribute copies to the public,
  1106. -(3) the exclusive right to prepare 
  1107. -.i "derivative works"
  1108. -(I'll explain, just keep reading), (4) the exclusive
  1109. -right to perform the work in public (this mainly applies
  1110. -to plays, dances and the like, but it could apply to
  1111. -software), and (5) the exclusive right to display the
  1112. -work in public (such as showing a film).
  1113. -.hn 2
  1114. -The meaning of \f2public domain\fP
  1115. -.pg
  1116. -Before we go any further, what is public
  1117. -domain?  I saw some discussion on the net about public
  1118. -domain software being copyrighted.  Nonsense.  The
  1119. -phrase 
  1120. -.i "public domain,"
  1121. -when used correctly, means the
  1122. -absence of copyright protection.  It means you can copy
  1123. -public domain software to your heart's content.  It
  1124. -means that the author has none of the exclusive rights
  1125. -listed above.  If someone uses the phrase
  1126. -.i "public domain"
  1127. -to refer to
  1128. -.i freeware
  1129. -(software which is copyrighted but is distributed without advance payment
  1130. -but with a request for a donation), he or she is using
  1131. -the term incorrectly.  Public domain means no copyright
  1132. --- no exclusive rights.
  1133. -.hn 2
  1134. -A hypothetical software purchase
  1135. -.pg
  1136. -Let's look at those exclusive rights from the
  1137. -viewpoint of someone who has legitimately purchased a
  1138. -single copy of a copyrighted computer program.  For the
  1139. -moment, we'll have to ignore the fact that the program
  1140. -is supposedly licensed, because the license changes
  1141. -things.  I'll explain that later.  For now, assume you
  1142. -went to Fred's Diner and Software Mart and bought a
  1143. -dozen eggs, cat food and a word processing program.  And
  1144. -for now, assume the program is copyrighted.
  1145. -.hn 2
  1146. -Can you use copyrighted software?
  1147. -.pg
  1148. -What can you do with this copyrighted
  1149. -software?  Let's start with the obvious:  can you use it
  1150. -on your powerful Timex PC?  Is this a joke?  No.  Prior
  1151. -to 1980, my answer might have been No, you can't use it!
  1152. -.pg
  1153. -People actually pay me for advice like that!  Well
  1154. -think:  you take the floppy disk out of the zip lock
  1155. -baggy, insert it in drive A and load the program into
  1156. -RAM.  What have you just done?  You've made a copy in
  1157. -RAM -- in legalese, you've reproduced the work, in
  1158. -violation of the copyright owner's exclusive right to
  1159. -reproduce.  (I better clarify something here:  the
  1160. -copyright owner is the person or company whose name
  1161. -appears in the copyright notice on the box, or the disk
  1162. -or the first screen or wherever.  It may be the person
  1163. -who wrote the program, or it may be his boss, or it may
  1164. -be a publishing company that bought the rights to the
  1165. -program.  But in any case, it's not you. When you buy a
  1166. -copy of the program, you do not become the copyright
  1167. -owner.  You just own one copy.)
  1168. -.pg
  1169. -Anyway, loading the program into RAM means
  1170. -making a copy.  The Software Act of 1980 addressed this
  1171. -absurdity by allowing you to make a copy if the copy \*(lqis
  1172. -created as an essential step in the utilization of the
  1173. -computer program in conjunction with a machine and ...
  1174. -is used in no other manner ....\*(rq  By the way,
  1175. -somebody tell me what 
  1176. -.i "a machine"
  1177. -means.  If you connect
  1178. -5 PC's on a network is that 
  1179. -.i "a machine"
  1180. -or
  1181. -.i "several machines" ?
  1182. -A related question is whether or not running
  1183. -software on a network constitutes a performance.  The
  1184. -copyright owner has the exclusive right to do that,
  1185. -remember?
  1186. -.hn 2
  1187. -Can you make a backup copy?
  1188. -.pg
  1189. -OK, so you bought this copyrighted program
  1190. -and you loaded it into RAM or onto a hard disk without
  1191. -the FBI knocking on your door.  Now can you make a
  1192. -backup copy? 
  1193. -.b YES .
  1194. -The Software Act also provided that
  1195. -you can make a backup copy, provided that it \*(lqis for
  1196. -archival purposes only ....\*(rq  What you cannot do,
  1197. -however, is give the archive copy to your friend so that
  1198. -you and your pal both got the program for the price of
  1199. -one.  That violates the copyright owner's exclusive
  1200. -right to distribute copies to the public.  Get it?  You
  1201. -can, on the other hand, give both your original and
  1202. -backup to your friend -- or sell it to him, or lend it
  1203. -to him, as long as you don't retain a copy of the
  1204. -program you are selling.  Although the copyright owner
  1205. -has the exclusive right to distribute (sell) copies of
  1206. -the program, that right only applies to the first sale
  1207. -of any particular copy.  By analogy, if you buy a
  1208. -copyrighted book, you are free to sell your book to a
  1209. -friend.  The copyright owner does not have the right to
  1210. -control resales.  
  1211. -.hn 2
  1212. -Licenses may change the rules
  1213. -.pg
  1214. -At this point, let me remind you that we have
  1215. -assumed that the program you got at the store was sold
  1216. -to you, not licensed to you.  Licenses may change the
  1217. -rules.
  1218. -.hn 2
  1219. -Can you modify the program?
  1220. -.pg
  1221. -Now, you're a clever programmer, and you know
  1222. -the program could run faster with some modifications. 
  1223. -You could also add graphics and an interactive mode and
  1224. -lots of other stuff.  What does copyright law say about
  1225. -your plans?  Well ... several different things,
  1226. -actually.  First, recall that the copyright owner has
  1227. -the exclusive right to make derivative works.  A
  1228. -derivative work is a work based on one or more
  1229. -preexisting works.  It's easy to recognize derivative
  1230. -works when you think about music or books.  If a book is
  1231. -copyrighted, derivative works could include a
  1232. -screenplay, an abridged edition, or a translation into
  1233. -another language.  Derivative works of songs might be
  1234. -new arrangements (like the jazz version of Love Potion
  1235. -Number 9), a movie soundtrack, or a written
  1236. -transcription, or a 
  1237. -.i "long version" ,
  1238. -(such as the fifteen minute version of \*(lqWipe Out\*(rq with an extended
  1239. -drum solo for dance parties).  In my opinion, you are making a
  1240. -derivative work when you take the store-bought word
  1241. -processor and modify it to perform differently.  The
  1242. -same would be true if you 
  1243. -.i translated
  1244. -a COBOL program
  1245. -into BASIC.  Those are copyright infringements -- you've
  1246. -horned in on the copyright owner's exclusive right to
  1247. -make derivative works.  There is, however, some
  1248. -breathing room.  The Software Act generously allows you
  1249. -to 
  1250. -.i adapt
  1251. -the code if the adaptation \*(lqis created as an
  1252. -essential step in the utilization of the computer
  1253. -program in conjunction with a machine ....\*(rq  For
  1254. -example, you might have to modify the code to make it
  1255. -compatible with your machine.
  1256. -.hn 2
  1257. -Can you break the copy protection scheme?
  1258. -.pg
  1259. -Moving right along, let's assume your store
  1260. -bought program is copy protected, and you'd really like
  1261. -to make a backup copy.  You know this nine-year-old whiz
  1262. -who can crack any copy-protection scheme faster than you
  1263. -can rearrange a Rubix cube.  Is there a copyright
  1264. -violation if he succeeds?  There's room to argue here. 
  1265. -When you try to figure out if something is an
  1266. -infringement, ask yourself, what exclusive right am I
  1267. -violating?  In this case, not the right to make copies,
  1268. -and not the right to distribute copies.  Public
  1269. -performance and display have no relevance.  So the key
  1270. -question is whether you are making a 
  1271. -.i "derivative work" .
  1272. -My answer to that question is, \*(lqI doubt it.\*(rq  On the
  1273. -other hand, I also doubt that breaking the protection
  1274. -scheme was \*(lqan essential step\*(rq in using the program in
  1275. -conjunction with a machine.  It might be a \*(lqfair use,\*(rq
  1276. -but that will have to wait for another article.  Anyone
  1277. -interested in stretching the limits of the \*(lqfair use\*(rq
  1278. -defense should read the Sony 
  1279. -.i Betamax
  1280. -case.
  1281. -.hn 2
  1282. -Summary
  1283. -.pg
  1284. -Let me summarize. Copyright means the
  1285. -copyright owner has the exclusive right to do certain
  1286. -things. Copyright infringement means you did one of
  1287. -those exclusive things (unless you did it within the
  1288. -limits of the Software Act, i.e., as an essential step ....).
  1289. -.hn 1
  1290. -Copyright Sounds Neat -- How Do I Get One?  Or, How Do I Know if this Program is Copyrighted?
  1291. -.hn 2
  1292. -How do you get a copyright?
  1293. -.pg
  1294. -If you've written an original program, what do you have to do to get a
  1295. -copyright? Nothing. You already have one.
  1296. -.hn 2
  1297. -How do you lose a copyright?
  1298. -.pg
  1299. -If you've written an original
  1300. -program, what do you have to do to lose your copyright
  1301. -protection?  Give copies away without the copyright
  1302. -notice.
  1303. -.hn 2
  1304. -How do you waste a stamp?
  1305. -.pg
  1306. -If you mail the program to yourself
  1307. -in a sealed envelope, what have you accomplished? 
  1308. -You've wasted a stamp and an envelope and burdened the
  1309. -postal system unnecessarily.
  1310. -.hn 2
  1311. -Do you have to register?
  1312. -.pg
  1313. -Do you have to register your program
  1314. -with the U.S. Copyright Office?  No, but it's a damn
  1315. -good idea.
  1316. -.hn 2
  1317. -How copyright comes into existence
  1318. -.pg
  1319. -Copyright protection (meaning the five
  1320. -exclusive rights) comes into existence the moment you
  1321. -.i fix
  1322. -your program in a 
  1323. -.i "tangible medium" .
  1324. -That means
  1325. -write it down, or store it on a floppy disk, or do
  1326. -something similar.  Registration is optional.  The one
  1327. -thing you must do, however, is protect your copyright by
  1328. -including a copyright notice on every copy of every
  1329. -program you sell, give away, lend out, etc.  If you
  1330. -don't, someone who happens across your program with no
  1331. -notice on it can safely assume that it is in the public
  1332. -domain (unless he actually knows that it is not).  
  1333. -.hn 2
  1334. -The copyright notice
  1335. -.pg
  1336. -The copyright notice has three parts.  The
  1337. -first can be either a c with a circle around it (\(co), or the
  1338. -word 
  1339. -.b Copyright
  1340. -or the abbreviation 
  1341. -.b Copr.
  1342. -The c
  1343. -with a circle around it is preferable, because it is
  1344. -recognized around the world; the others are not.  That's
  1345. -incredibly important.  Countries around the world have
  1346. -agreed to recognize and uphold each others' copyrights,
  1347. -but this world-wide protection requires the use of the c
  1348. -in a circle.  On disk labels and program packaging, use
  1349. -the encircled c.  Unfortunately, computers don't draw
  1350. -small circles well, so programmers have resorted to a c
  1351. -in parentheses: (c).  Too bad.  That has no legal
  1352. -meaning.  When you put your notice in the code and on
  1353. -the screen, use 
  1354. -.b Copyright
  1355. -or 
  1356. -.b Copr.
  1357. -if you can't make a circle.
  1358. -.pg
  1359. -The second part of the notice is the \*(lqyear
  1360. -of first publication of the work.\*(rq  
  1361. -.i Publication
  1362. -doesn't mean distribution by Osborne Publishing Co.  It
  1363. -means distribution of copies of the program to the
  1364. -public \*(lqby sale or other transfer of ownership, or by
  1365. -rental, lease, or lending.\*(rq  So when you start handing
  1366. -out or selling copies of your precious code, you are
  1367. -publishing.  Publication also takes place when you
  1368. -merely OFFER to distribute copies to a group for further
  1369. -distribution.  Your notice must include the year that
  1370. -you first did so.
  1371. -.pg
  1372. -The third part of the notice is the name of
  1373. -the owner of the copyright.  Hopefully, that's you, in
  1374. -which case your last name will do.  If your company owns
  1375. -the program -- a legal issue which I will address later
  1376. -in this article -- the company name is appropriate.
  1377. -.pg
  1378. -Where do you put the notice?  The general
  1379. -idea is to put it where people are likely to see it. 
  1380. -Specifically, if you're distributing a human-readable
  1381. -code listing, put it on the first page in the first few
  1382. -lines of code, and hard code it so that it appears on
  1383. -the title screen, or at sign-off, or continuously.  If
  1384. -you're distributing machine-readable versions only, hard
  1385. -code it.  As an extra precaution, you should also place
  1386. -the notice on the gummed disk label or in some other
  1387. -fashion permanently attached to the storage medium.
  1388. -.hn 2
  1389. -Advantages of registration
  1390. -.pg
  1391. -Now, why register the program?  If no one
  1392. -ever rips off your program, you won't care much about
  1393. -registration.  If someone does rip it off, you'll kick
  1394. -yourself for not having registered it.  The reason is
  1395. -that if the program is registered before the
  1396. -infringement takes place, you can recover some big bucks
  1397. -from the infringer, called statutory damages, and the
  1398. -court can order the infringer to pay your attorneys
  1399. -fees.  Registration only costs $10.00, and it's easy to
  1400. -do yourself.  The only potential disadvantage is the
  1401. -requirement that you deposit the first and last 25 pages
  1402. -of your source code, which can be inspected (but not
  1403. -copied) by members of the public.  
  1404. -.hn 2
  1405. -A test to see if you understand this article
  1406. -.pg
  1407. -Now, someone tell me this:  is this article copyrighted?  Can you print it?
  1408. -.hn 1
  1409. -Who Owns The Program You Wrote?
  1410. -.hn 2
  1411. -Introduction
  1412. -.pg
  1413. -The starting point of this analysis is that if you wrote
  1414. -the program, you are the author, and copyright belongs
  1415. -to the author.  HOWEVER, that can change instantly. 
  1416. -There are two common ways for your ownership to shift to
  1417. -someone else:  first, your program might be a \*(lqwork for
  1418. -hire.\*(rq  Second, you might sell or assign your 
  1419. -.i rights
  1420. -in the program, which for our purposes means the
  1421. -copyright.  
  1422. -.hn 2
  1423. -Programs written as an employee
  1424. -.pg
  1425. -Most of the programs which you write at
  1426. -work, if not all of them, belong to your employer. 
  1427. -That's because a program prepared by an employee within
  1428. -the scope of his or her employment is a \*(lqwork for hire,\*(rq
  1429. -and the employer is considered the 
  1430. -.i author .
  1431. -This is more or less automatic if you are an employee -- no
  1432. -written agreement is necessary to make your employer the
  1433. -copyright owner.  By contrast, if you can convince your
  1434. -employer to let you be the copyright owner, you must
  1435. -have that agreement in writing.
  1436. -.pg
  1437. -By the way, before you give up hope of
  1438. -owning the copyright to the program you wrote at work,
  1439. -figure out if you are really an employee.  That is
  1440. -actually a complex legal question, but I can tell you
  1441. -now that just because your boss says you are an employee
  1442. -doesn't mean that it's so.  And remember that if you
  1443. -created the program outside the 
  1444. -.i scope
  1445. -of your job, the
  1446. -program is not a \*(lqwork for hire.\*(rq  Finally, in
  1447. -California and probably elsewhere, the state labor law
  1448. -provides that employees own products they create on
  1449. -their own time, using their own tools and materials. 
  1450. -Employment contracts which attempt to make the employer
  1451. -the owner of those off-the-job 
  1452. -.i inventions
  1453. -are void, at least in sunny California.
  1454. -.hn 2
  1455. -Programs written as a contractor
  1456. -.pg
  1457. -Wait a minute:  I'm an independent
  1458. -contractor to Company X, not an employee.  I come and go
  1459. -as I please, get paid by the hour with no tax withheld,
  1460. -and was retained to complete a specific project.  I
  1461. -frequently work at home with my own equipment.  Is the
  1462. -program I'm writing a \*(lqwork for hire,\*(rq owned by the
  1463. -Company?  Maybe, maybe not.  In California, this area is
  1464. -full of landmines for employers, and gold for
  1465. -contractors.
  1466. -.pg
  1467. -A contractor's program is not a \*(lqwork for
  1468. -hire,\*(rq and is not owned by the company, unless (1) there
  1469. -is a written agreement between the company and the
  1470. -contractor which says that it is, and (2) the work is a
  1471. -.i "commissioned work" .
  1472. -A
  1473. -.i "commissioned work"
  1474. -is one of
  1475. -the following:  (a)  a contribution to a 
  1476. -.i "collective work" ,
  1477. -(b) an audiovisual work (like a movie, and maybe like a video game),
  1478. -(c) a translation, (d) a compilation, (e) an instructional text,
  1479. -(f) a test or answer to a test, or (g) an atlas.  I know you must be
  1480. -tired of definitions, but this is what the real legal
  1481. -world is made of.  An example of a  collective work is a
  1482. -book of poetry, with poems contributed by various
  1483. -authors.  A piece of code which is incorporated into a
  1484. -large program isn't a contribution to a collective work,
  1485. -but a stand-alone program which is packaged and sold
  1486. -with other stand-alone programs could be.   
  1487. -.pg
  1488. -So where are we?  If you are a contract
  1489. -programmer, not an employee, and your program is a
  1490. -.i "commissioned work" ,
  1491. -and you have a written agreement
  1492. -that says that the program is a \*(lqwork for hire\*(rq owned by
  1493. -the greedy company, who owns the program?  That's right,
  1494. -the company.  But guess what?  In California and
  1495. -elsewhere the company just became your employer!  This
  1496. -means that the company must now provide worker's
  1497. -compensation benefits for you
  1498. -.b "AND UNEMPLOYMENT INSURANCE" .
  1499. -.hn 1
  1500. -A Brief Word About Licenses. 
  1501. -.hn 2
  1502. -Why a license?
  1503. -.pg
  1504. -When you get software at the local five and dime, the
  1505. -manufacturer claims that you have a license to use that
  1506. -copy of the program.  The reason for this is that the
  1507. -manufacturer wants to place more restrictions on your
  1508. -use of the program than copyright law places.  For
  1509. -example, licenses typically say you can only use the
  1510. -program on a single designated CPU.  Nothing in the
  1511. -copyright law says that.  Some licenses say you cannot
  1512. -make an archive copy.  The copyright law says you can,
  1513. -remember?  But if the license is a valid license, now
  1514. -you can't.  You can sell or give away your copy of a
  1515. -program if you purchased it, right?  That's permitted by
  1516. -copyright law, but the license may prohibit it.  The
  1517. -more restrictive terms of the license will apply instead
  1518. -of the more liberal copyright rules.
  1519. -.hn 2
  1520. -Is it valid?
  1521. -.pg
  1522. -Is the license valid?  This is hotly debated
  1523. -among lawyers.  (What isn't?  We'll argue about the time
  1524. -of day.)  A few states have passed or will soon pass
  1525. -laws declaring that they are valid.  A few will go the
  1526. -other way.  Federal legislation is unlikely.  My
  1527. -argument is that at the consumer level, the license is
  1528. -not binding because there is no true negotiation (unless
  1529. -a state law says it is binding), but hey that's just an
  1530. -argument and I'm not saying that that's the law.  In any
  1531. -case, I think businesses which buy software will be
  1532. -treated differently in court than consumers.  Businesses
  1533. -should read those licenses and negotiate with the
  1534. -manufacturer if the terms are unacceptable.  
  1535. -.hn 1
  1536. -I Have A Neat Idea. Can I Trademark It?  What About patent?
  1537. -.hn 2
  1538. -Trademark law explained
  1539. -.pg
  1540. -Sorry, no luck.  Trademark law protects names:  names of
  1541. -products and names of services.  (Note that I did not
  1542. -say names of companies.  Company names are not
  1543. -trademarkable.)  If you buy a program that has a
  1544. -trademarked name, all that means is that you can't sell
  1545. -your own similar program under the same name.  It has
  1546. -nothing to do with copying the program.  
  1547. -.hn 2
  1548. -Patent Law
  1549. -.pg
  1550. -Patent law can apply to computer programs,
  1551. -but it seldom does.  The main reasons it seldom applies
  1552. -are practical:  the patent process is too slow and too
  1553. -expensive to do much good in the software world.  There
  1554. -are also considerable legal hurdles to overcome in order
  1555. -to obtain a patent.  If, by chance, a program is
  1556. -patented, the patent owner has the exclusive right to
  1557. -make, use or sell it for 17 years.
  1558. -.hn 1
  1559. -CONCLUSION
  1560. -.pg
  1561. -I know this is a long article,
  1562. -but believe it or not I just scratched the surface. 
  1563. -Hopefully, you'll find this information useful, and
  1564. -you'll stop passing along myths about copyright law.  If
  1565. -anyone needs more information, I can be reached at the
  1566. -address on the first page.
  1567. -Sorry, but I do not usually have
  1568. -access to the network, so you can't reach me there. 
  1569. -.sp
  1570. -Thank you.  JORDAN J. BRESLOW
  1571. *-*-END-of-doc/copyright.mn-*-*
  1572. sed 's/.//' >doc/patchlevel.doc <<'*-*-END-of-doc/patchlevel.doc-*-*'
  1573. 0
  1574. *-*-END-of-doc/patchlevel.doc-*-*
  1575. exit
  1576.  
  1577.